<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>
<body>
    <h3>作用域</h3>

    <script>
        // 作用域：
            // 在程序中，是指代码的执行环境 （范围）

        // 1.0 全局作用域 
        var air = "空气123";// 全局变量（共享）
        var index = 0;
        var str = "";// 字符串
        var num = 100;// 数字
        var flag = true;//布尔值
        var arr = [];// 数组
        var obj = {};// 对象
        var foo = function(){};// 函数
        // 名词： window 
        // 全局对象
        console.log(window);// 凡是挂载在window对象上的属性，变量，那么都是全局的
        console.log(window.air);//空气123
        console.log(air);//空气123 ，window可省略
        // 在全局作用域下声明的变量就是全局变量（最大的范围）


        // 2.0 局部作用域（函数作用域） 私有
        function fn() {
            var x = "100px"; // 私有变量
            console.log(x);// 局部变量仅仅在函数作用域内使用
        }
        // console.log(x);// 报错 函数作用域外不能直接引用局部变量
        fn();
        

        // 函数作用域下的变量是私有的
        function f1(){
            var index = 0;
        }
        function f2(){
            var index = 1;
        }
        function f3(){
            var index = 2;
        }

        // 总结：
            // 作用域可称之为 代码的执行环境
            // 一种是，全局作用域是指window下的环境
            // 另一种，局部作用域是指函数中的环境

        

        
    </script>
</body>
</html>